package fileutils

//import (
//	"archive/tar"
//	"fmt"
//	"github.com/klauspost/compress/zstd"
//	"io"
//	"io/fs"
//	"net/http"
//	"os"
//	"path/filepath"
//	"strconv"
//
//	"github.com/klauspost/compress/zip"
//)
//
//func HttpCopy(url string, saveTo string, unzip bool) error {
//	resp, err := http.Get("https://gitee.com/vovcx/app/repository/archive/master.zip")
//	if err != nil {
//		return err
//	}
//	if resp.StatusCode != 200 {
//		return fmt.Errorf("http status: %d", resp.StatusCode)
//	}
//	length, _ := strconv.ParseInt(resp.Header.Get("Content-Length"), 10, 64)
//	gr, err := zip.NewReader(resp.Body, length)
//	gr, err := zip.OpenReader(resp.Body, length)
//}
//
//func unzip(zipFn string) {
//
//}
//
//func UnTar(tarZstReader io.Reader, saveTo string) error {
//	tr := tar.NewReader(tarZstReader)
//	for {
//		hdr, err := tr.Next()
//		if err != nil {
//			if err == io.EOF {
//				break
//			}
//			return err
//		}
//		fw, err := os.OpenFile(filepath.Join(saveTo, hdr.Name), os.O_CREATE|os.O_WRONLY, 0777)
//		if err != nil {
//			return err
//		}
//		zr, err := zstd.NewReader(tr)
//		if err != nil {
//			return err
//		}
//		_, err = io.Copy(fw, zr)
//		if err != nil {
//			return err
//		}
//	}
//	return nil
//}
//
//func Tar(src string, w io.Writer) error {
//	tw := tar.NewWriter(w)
//	return Walk(src, func(path string, d fs.DirEntry, err error) error {
//		if d.IsDir() {
//			return nil
//		}
//
//		os.TempDir()
//
//		fi, err := d.Info()
//		if err != nil {
//			return err
//		}
//		hdr, err := tar.FileInfoHeader(fi, "")
//		if err != nil {
//			return err
//		}
//		if err := tw.WriteHeader(hdr); err != nil {
//			return err
//		}
//	})
//}

//type HttpZip struct {
//	*zip.Reader
//	io.Closer
//}
